(function(factory) {
	if (typeof define === "function" && define.amd) {
	
		// AMD. Register as an anonymous module.
		define(['HteOS/app/AppManager','HteOS/TaskManager','HteOS/Messages',
				'HteOS/Notification','HteOS/Messager', 'HteOS/Masker', 'HteOS/Locker',
				'HteOS/Taskbar','HteOS/Quickbar', 'HteOS/Dockbar',
				'HteOS/Settings','HteOS/Overview','HteOS/API',
				'HteOS/Desktop','HteOS/Metro',
				'HteOS/dock/DockManager' ,'HteOS/window/WindowManager',
				'HteOS/page/PageManager','HteOS/menu/MenuManager', ],factory);
	} else {
		// Browser globals
		factory();
	}
}(function() {
	/**
	 * 桌面启动的方法，在页面加载完成后，HteOS会自动调用改方法启动桌面，该方法不需要外部调用。
	 * 在启动的过程中会初始化一系列的组件/组件管理器，会初始化组件：
	 * <ul>
	 *	<li>HteOS.window.WindowManager 窗口管理器</li>
	 *	<li>HteOS.Taskbar 任务栏</li>
	 *	<li>HteOS.menu.MenuManager 菜单管理器</li>
	 *	<li>HteOS.Notification 桌面通知组件</li>
	 *	<li>HteOS.Wallpaper 壁纸组件</li>
	 *	<li>HteOS.dock.DockManager 侧边栏管理器</li>
	 *	<li>HteOS.Quickbar 快速启动栏</li>
	 *	<li>HteOS.Overview 应用管理组件</li>
	 *	<li>HteOS.Metro 系统桌面</li>
	 *	<li>HteOS.app.AppManager 应用管理器</li>
	 * </ul>
	 * */
	
	HteOS.Bootstrap = {
		start : function(){
			/**
			 * @event hte-beforestart 
			 * 可以通过监听该事件在启动桌面之前进行某些特殊的操作
			 * 
			 *  	@example
			 * 		$(document).on("hte.beforestart",function(){
			 * 			//do something;
			 * 		});
			 *
			 * */
			HteOS.EventManager.trigger("hteos.beforestart");
			$(document).trigger("hteos.beforestart");
			
			window.setTimeout(function() {
						window.scroll(0, 0);
					}, 500);
					
			// 启动工具提示组件
			if (!HteOS.UA.isIE8 && HteOS.UA.Mobile !== true) {
				$(document.body).tooltip({
					selector : "[data-toggle=tooltip]",
					container : "body"
				});
			}
			//设置桌面模式
			HteOS.setMode(HteOS.Settings.mode);
			if(HteOS.isDesktop()){
				//初始化Metro桌面
				HteOS.Desktop.init();
			}else{
				//初始化Metro桌面
				HteOS.Metro.init();
			}
			
			//添加IE8的特殊CSS标示
			if (HteOS.UA.isIE) {
				$("body").addClass("hte-ie");
			}
		
			//添加IE8的特殊CSS标示
			if (HteOS.UA.isIE8) {
				$("body").addClass("hte-ie8");
			}
			
			//添加IE8的特殊CSS标示
			if (HteOS.UA.isIE9) {
				$("body").addClass("hte-ie9");
			}
			
			
			//HteOS.UA.Mobile = true;
			if(HteOS.UA.Mobile !== true){
				// 初始化窗口管理器
				HteOS.window.WindowManager.init();
		
				// 初始化任务栏
				HteOS.Taskbar.init();
				
				// 初始化侧边栏管理器
				HteOS.dock.DockManager.init();
				
				// 初始化菜单管理器
				HteOS.menu.MenuManager.init();
			
			}else{
				//底部停靠栏
				HteOS.Dockbar.init();
				
				//页面管理器
				HteOS.page.PageManager.init();
			}
	
			//初始化任务管理器
			HteOS.TaskManager.init();
	
			// 初始化通知组件
			HteOS.Notification.init();
	
			// 初始化个性化设置组件
			HteOS.Settings.init();
	
			//初始化快速启动栏
			HteOS.Quickbar.init();
			
			// 初始化应用管理器
			HteOS.app.AppManager.init();
			
			/**
			 * @event hte-afterstart 
			 * 可以通过监听该事件在启动桌面之前进行某些特殊的操作
			 * 
			 *  	@example
			 * 		$(document).on("hte.afterstart",function(){
			 * 			//do something;
			 * 		});
			 *
			 * */
			HteOS.EventManager.trigger("hteos.afterstart");
			$(document).trigger("hteos.afterstart");
		}
	}
	return HteOS.Bootstrap;
}));